StepFinish

@Serializable
data class StepFinish(val stepNumber: Int, val finishReason: FinishReason, val usage: Usage, val providerMetadata: Map<String, JsonElement>? = null) : StreamEvent

Step ended — aggregated finish reason + usage for that one step. Per historical parity gap #18 (slice), providerMetadata carries provider-specific payloads (Anthropic prompt-cache hints, OpenAI reasoning trace tokens, etc.) so consumers can measure cache-hit rate per step without parsing raw streams.

Constructors

Link copied to clipboard
constructor(stepNumber: Int, finishReason: FinishReason, usage: Usage, providerMetadata: Map<String, JsonElement>? = null)

Properties

Link copied to clipboard
Link copied to clipboard
val StreamEvent.metadata: Map<String, JsonElement>?
Link copied to clipboard
val providerMetadata: Map<String, JsonElement>?

Optional provider-specific payload; null on providers that don't expose it. Mirrors v6's finishStep.providerMetadata.

Link copied to clipboard
Link copied to clipboard

Functions

Link copied to clipboard
inline fun <T> StreamEvent.providerMetadataAs(provider: String): T?
fun <T> StreamEvent.providerMetadataAs(provider: String, serializer: KSerializer<T>): T?